const jwt = require('jsonwebtoken')

const defaultConfig = require('../../config/config.default')

//加密模块
const { createHmac } = require('crypto');
//私钥   密码加密
const signPassword = async(pwd)=>{
    return await createHmac('sha256',defaultConfig.App_keys)
    .update(pwd)
    .digest('hex')
}



const signToken = async(params)=>{
    //编码
    return await jwt.sign({
        //加密
        ...params//...拓展运算符  ...params：展开
        //私钥                  有效时间
    },defaultConfig.App_keys,{expiresIn:'1h'})
}//返回前端


//携带回来
const verfyToken = async(token)=>{
    //                              公钥                               解码
    return await jwt.verify(token,defaultConfig.App_keys,function(err,decoded){
        if(err){
            return err.name
        }
        else{
            return decoded
        }
    })
}


module.exports={
    signToken,
    verfyToken,
    signPassword
}